package com.lzx.article.service;

import com.lzx.article.entity.Articles;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lzx.article.entity.vo.ArticleParams;
import com.lzx.article.vo.ArticleVo;
import com.lzx.article.vo.ArticleVos;
import com.lzx.common.utils.R;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author lzx
 * @since 2023-01-11
 */
public interface ArticlesService extends IService<Articles> {

    //获取文章列表
    R getArticleList(int current, int size);

    //发布文章
    R saveArticle(ArticleVo articleVo);

    //删除文章
    R deleteArticle(List<Integer> ids);

    //修改文章
    R modifyArticle(ArticleVos articleVos);

    //获取文章信息
    R getArticleDetails(Long id);

    //查询当前用户是否点赞或收藏了文章
    R getUserIsLikeOrCollectArticle(int articleId, int userId);

    //获取当前用户发布的文章
    R getUserArticleList(Long userId);

    //获取所有文章
    List<Articles> getArticleListToES();

    //查询文章（提供给其他服务）
    Articles getArticleToOther(Long id);

    //用户修改头像或昵称 es同步
    List<Articles> getUserArticleListToES(Long userId);

    //获取浏览量最多的十篇文章
    R getTopTenArticle();

    //搜索
    R searchArticle(ArticleParams articleParams);

    //导出
    void exportArticle(HttpServletResponse response);
}
